home *** CD-ROM | disk | FTP | other *** search
- INPUTS:
- dc.l 0
- dc.l 0
- dc.l 0
- dc.l 0
- dc.l 0
-
- START:
-
- lea INPUTS(pc),a0
-
- move.l (a0),a1
- move.l 16(a0),a2
-
- move.w #0,d0
- PALOP:
- move.w #0,d1
- ALOP:
- move.w #32,d2
- sub.w d1,d2
- move.w #7,d3
- move.l 12(a0),a6
- move.l 8(a0),a5
- move.l 4(a0),a4
- move.w d0,d4
- move.w d0,-(a7)
- asl.w #5,d4
- add.w d4,a6
- add.w d4,a5
- add.w d4,a4
- QLOP:
- move.l (a4)+,d4
- move.l (a5)+,d5
- move.l (a6)+,d6
- muls d2,d4
- muls d2,d5
- muls d2,d6
- asr.l #5,d4
- asr.l #5,d5
- asr.l #5,d6
- move.l #10000000,d7
- movem.l d1/d2/d3/a1,-(a7)
-
- move.w #255,d0
- findbest:
-
- move.l (a1)+,d1
- sub.l d4,d1
- muls d1,d1
- move.l (a1)+,d2
- sub.l d5,d2
- muls d2,d2
- move.l (a1)+,d3
- sub.l d6,d3
- muls d3,d3
-
- add.l d3,d2
- add.l d2,d1
-
- cmp.l d1,d7
- blt.s .notnewbest
-
- move.l d1,d7
- move.b d0,d1
- swap d0
- move.w d1,d0
- swap d0
-
- .notnewbest:
- dbra d0,findbest
-
- movem.l (a7)+,d1/d2/d3/a1
-
- swap d0
- not.b d0
- move.b d0,(a2)+
-
- dbra d3,QLOP
- move.w (a7)+,d0
- addq #1,d1
- cmp.w #32,d1
- blt ALOP
- addq #1,d0
- cmp.w #4,d0
- blt PALOP
-
- rts